package com.t.bricks.bussiness.db.mapper.customeraccount;

import java.util.Date;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.t.bricks.bussiness.db.entity.customeraccount.CustomerAccount;

@Mapper
public interface CustomerAccountMapper {

	/**
	 * 修改密码
	 * @param sId
	 * @param sOldPass
	 * @param sNewPass
	 * @param iVersion
	 * @param dModifiedDate
	 * @param sModifieder
	 * @param sRecordKey
	 * @return
	 */
	int editPass(
		@Param("sId") String sId,
		@Param("sOldPass") String sOldPass,
		@Param("sNewPass") String sNewPass,
		@Param("iVersion") int iVersion,
		@Param("dModifiedDate") Date dModifiedDate,
		@Param("sModifieder") String sModifieder,
		@Param("sRecordKey") String sRecordKey
	);

	/**
	 * 修改手势密码
	 * @param sId
	 * @param sOldPass
	 * @param sNewPass
	 * @param iVersion
	 * @param dModifiedDate
	 * @param sModifieder
	 * @param sRecordKey
	 * @return
	 */
	int editSignPass(
		@Param("sId") String sId,
		@Param("sOldPass") String sOldPass,
		@Param("sNewPass") String sNewPass,
		@Param("iVersion") int iVersion,
		@Param("dModifiedDate") Date dModifiedDate,
		@Param("sModifieder") String sModifieder,
		@Param("sRecordKey") String sRecordKey
	);
	
	/**
	 * 添加日志
	 * @param sId
	 * @param sOldPass 旧密码
	 * @param sNewPass 新密码
	 * @param sType 密码类型(登录或支付)
	 * @param sModifieder 操作人员
	 * @return
	 */
	int addLog(
		@Param("sId") String sId,
		@Param("sOldPass") String sOldPass,
		@Param("sNewPass") String sNewPass,
		@Param("sType") String sType,
		@Param("sModifieder") String sModifieder
	);
	
	/**
	 * 更新顾客账户中的余额
	 * @param customerAccount
	 * @return
	 */
	int changeFund(CustomerAccount customerAccount);
	
	/**
	 * 更新顾客账户中的积分
	 * @param customerAccount
	 * @return
	 */
	int changeTally(CustomerAccount customerAccount);
	
	/**
	 * 取用户的登录密码
	 * @param uId
	 * @return
	 */
	String findLoginPass(@Param("uId") String uId);
	
	/**
	 * 根据识别号获取账户信息
	 * @param sNo Customer表sNo字段
	 * @return
	 */
	CustomerAccount findByNo(@Param("sNo") String sNo);
	
}
